package it.univaq.mwt.presentation;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

import it.univaq.mwt.business.impl.JDBCSecurityService;
import it.univaq.mwt.business.impl.JDBCUserService;
import it.univaq.mwt.business.model.Album;
import it.univaq.mwt.business.model.Album_Fotografico;
import it.univaq.mwt.business.model.Canale;
import it.univaq.mwt.business.model.Canzoni;
import it.univaq.mwt.business.model.Evento;
import it.univaq.mwt.business.model.Foto;
import it.univaq.mwt.business.model.Gruppo;
import it.univaq.mwt.business.model.Locale;
import it.univaq.mwt.business.model.ServiceMusicale;
import it.univaq.mwt.business.model.Tipologia_Eventi;
import it.univaq.mwt.business.model.Utente;
import it.univaq.mwt.business.model.Video;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
@RequestMapping("/")
public class ControllerYop {
    
//    @Autowired
//    JDBCSecurityService jdbcSS;
//    @Autowired
//    JDBCUserService jdbcUS;
//    private Gruppo view_group;
    
    @RequestMapping("/")
    public String welcome(){
//        Set<Utente> result = new HashSet<Utente>();
//        result = jdbcSS.findAllUsers();
//        Iterator i = result.iterator();
//        while(i.hasNext()){
//            Utente temp = (Utente) i.next();
//            System.out.println("Username" + temp.getUsername());
//            
//        }
        return "common.index";
    }
    
    @RequestMapping("/HowitWorks")
    public String howItWorks(){
        return "common.howto";
    }
    @RequestMapping("/ContactUs")
    public String contactUs(){
        return "common.contactus";
    }
    @RequestMapping("/Signup")
    public String signUp(Model model){
        model.addAttribute("formGruppi", new Gruppo());
        
        return "common.register";
    }
    @RequestMapping("/Groups")
    public String groupHome(){
        return "group.welcome";
    }
//    @RequestMapping("/Group/{id}")
//    public String groupProfile(@PathVariable("id") int id, Model model){
//        view_group = jdbcUS.findGruppoById(id);
//        
//        /*Fingo il caricamento degli album e query, in questo caso un Album con 3 canzoni*/
//        float a = (float) 2.3;
//        Canzoni canzone1 = new Canzoni(1, "Intro", a, "resources/placeholders/mp3/adg3com_bustedchump.mp3");
//        Canzoni canzone2 = new Canzoni(2, "Non Credo", a, "resources/placeholders/mp3/adg3com_chuckedknuckles.mp3");
//        Canzoni canzone3 = new Canzoni(3, "Su Le Mani", a, "resources/placeholders/mp3/adg3com_cloudlessdays.mp3");
//        Set<Canzoni> songs = new HashSet<Canzoni>(3);
//        songs.add(canzone1);songs.add(canzone2);songs.add(canzone3);
//        Album album = new Album();
//        Album album2 = new Album(2, songs, "Il Veleno è La Medicina", a*3, 2011);
//        Set<Album> discografia = new HashSet<Album>(2);
//        discografia.add(album);discografia.add(album2);
//        /*Fine creazione Album e canzoni */
//        /*Creazione Contenuti Multimediali*/
//        
//        Foto f1 = new Foto(1,"resources/img/profile/33/profile.jpg");
//        Foto f2 = new Foto(2,"resources/img/profile/33/image01.jpg");
//        Set<Foto> collection1 = new HashSet<Foto>(2);
//        collection1.add(f1);collection1.add(f2);
//        String nomeGruppo = new String("Cariche Esplosive");
//        Album_Fotografico af = new Album_Fotografico(nomeGruppo, new Date(),collection1 );
//            /*Divido il nome del Gruppo in 2*/
//            
//            String[] title = nomeGruppo.split(" ");
//            if (title.length == 2){
//                model.addAttribute("titolo_page_1", title[0]);
//                model.addAttribute("titolo_page_2", title[1]);
//            }
//            /**/
//        
//        
//          Video v2 = new Video(2,"Com'è che ridi ancora",new Date(), "www.youtube.com/embed/-kfDdArOFXI");
//          Video sc1 = new Video(1,"Gratta gratta e vinci",new Date(), "<iframe width='100%' height='450' scrolling='no' frameborder='no' src='https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/158692575&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;visual=true'></iframe>");
//          Video sc2 = new Video(3,"Com'è che ridi ancora",new Date(), "<iframe width='100%' height='166' scrolling='no' frameborder='no' src='https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/104689001&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false'></iframe>");
//          Video sc3 = new Video(4,"Com'è che ridi ancora",new Date(), "<iframe width='100%' height='166' scrolling='no' frameborder='no' src='https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/35343336&amp;color=ff5500&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false'></iframe>");
//        Set<Video> soundCloudMusic = new HashSet<Video>(3);
//        soundCloudMusic.add(sc1);soundCloudMusic.add(sc2);soundCloudMusic.add(sc3);
//        /*Fine Creazione Contenuti Multimediali*/
//          
//          /*Eventi */
//          Locale l = new Locale();
//          l.setNomeLocale("QUBE");
//          Locale l2 = new Locale();
//          l2.setNomeLocale("Cafè Del Mar");
//          Tipologia_Eventi te = new Tipologia_Eventi("Rap","Concerto");
//          Set<Tipologia_Eventi> ste = new HashSet<Tipologia_Eventi>(1);
//          ste.add(te);
//          SimpleDateFormat d1 = new SimpleDateFormat("dd/MM/yy");
//          Date w1 = new Date(2014,11,10);
//          String dw1= d1.format(w1);
//          String dw2 = d1.format(new Date(2014,11,20));
//          Evento ev1 = new Evento(1,l,view_group,ste,dw1,"23,00","3,00","CE - Al QUBE", "Via Alessandrini 4, Pescara",5);
//          Evento ev2 = new Evento(2,l2,view_group,ste,dw2,"23,00","3,00","Cariche Esplosive @CafèDelMar", "Riviera Nord 15, Pescara",10);
//          Set<Evento> eventi = new HashSet<Evento>(2);
//          eventi.add(ev1);eventi.add(ev2);
//          view_group.setEventi(eventi);
//          /*Fine Eventi */
////          Canali
//          Canale channel = new Canale();
//          channel.setFacebook("https://it-it.facebook.com/CaricheEsplosive");
//          channel.setSoundCloud("https://soundcloud.com/cariche-esplosive");
//          channel.setYoutube("https://www.youtube.com/channel/UC-km9SCaScxPwyXOL8ne07g");
//          channel.setGooglePlus("https://www.youtube.com/channel/UC-km9SCaScxPwyXOL8ne07g");
////          Fine Canali
//          
//        model.addAttribute("gruppo", view_group);
//        model.addAttribute("album", discografia);
//        model.addAttribute("album_foto", af);
//        model.addAttribute("foto_profilo", f1);
//        model.addAttribute("video", v2);
//        model.addAttribute("eventi", eventi);
//        model.addAttribute("canali",channel);
//        model.addAttribute("soundcloud", soundCloudMusic);
//        return "group.profile";
//    }
    
    @RequestMapping("/Locals")
    public String localHome(){
        return "local.welcome";
    }
    
//    @RequestMapping("/Local/{id}")
//    public String localProfile(@PathVariable("id") int id, Model model){
//        
//        Service service = new Service(1,true,2,4,false,true,false,true);
//        
//        Set<String> contatti = new HashSet<String>(2);
//        contatti.add("08595951");
//        contatti.add("393 3939585");
//        
//        SimpleDateFormat d1 = new SimpleDateFormat("dd/MM/yy");
//        Date w1 = new Date(2014,11,10);
//          String dw1= d1.format(w1);
//          Tipologia_Eventi te = new Tipologia_Eventi("Rap","Concerto");
//          Set<Tipologia_Eventi> ste = new HashSet<Tipologia_Eventi>(1);
//          ste.add(te);
//          
//          Gruppo ce = new Gruppo(); ce.setNomeGruppo("Cariche Esplosive");
//          Gruppo fes = new Gruppo(); fes.setNomeGruppo("Furious & Escort");
//          Evento ev1 = new Evento(1,null,ce,ste,dw1,"23,00","3,00","CE - Al QUBE", "Via Alessandrini 4, Pescara",5);
//          Evento ev2 = new Evento(2,null,fes,null,"15/12/2014","22:00","04:00","Rock&Roll","Piazza della Repubblica, Pescara",10); 
//          Set<Evento> eventi = new HashSet<Evento>(2);
//          eventi.add(ev1);
//          eventi.add(ev2);
//          
//          Locale utente = new Locale(34,"Lost Dogs",service,null,null,contatti,null,null,"Viale Matrino 1,Città Sant'Angelo, PE","20:00","05:00","E' un posto curioso il Lost Dogs Cafe' dove un po' ci si sente a casa, con la clientela affezionata che chiama il barista per nome e gli avventori del vicino punto scommesse. E in più ci sono i frequentatori delle vicine discoteche, che prima di lanciarsi nella notte si fermano qui per un aperitivo, un amaro o uno dei cocktail preparati alla perfezione.");
//        
//        Foto slide1 = new Foto(1,"resources/img/profile/34/1.jpg");
//        Foto slide2 = new Foto(2,"resources/img/profile/34/back.jpg");
//        Foto slide3 = new Foto(3,"resources/img/profile/34/Ocktober.jpg");
//        Set<Foto> slideshow = new HashSet<Foto>(3);
//        slideshow.add(slide1);slideshow.add(slide2);slideshow.add(slide3);
//        
//        Canale channel = new Canale();
//          channel.setFacebook("https://it-it.facebook.com/CaricheEsplosive");
//          channel.setYoutube("https://www.youtube.com/channel/UC-km9SCaScxPwyXOL8ne07g");
//          channel.setGooglePlus("https://www.youtube.com/channel/UC-km9SCaScxPwyXOL8ne07g");
//        
//        model.addAttribute("utente",utente);
//        model.addAttribute("eventi", eventi);
//        model.addAttribute("slideshow", slideshow);
//        model.addAttribute("back", slide2);
//        model.addAttribute("canali", channel);
//        
//        return "local.profile";
//    }
    
    @RequestMapping("/Group/welcome.do")
    public String groupWelcome(){
        return "group.profile";
    }
    
    @RequestMapping("/createGroup.do")
    public String createGroup(@ModelAttribute Gruppo gruppo, BindingResult bindingResult, Model model) {
         //jdbcUS.createGruppo(gruppo);
        return "common.conferma";
    }
//    
//    @RequestMapping("/Event/{id}")
//    public String eventDetail(@PathVariable("id") int id, Model model) {
//        
//
//        SimpleDateFormat d1 = new SimpleDateFormat("dd/MM/yy");
//        Date w1 = new Date(2014,11,10);
//          String dw1= d1.format(w1);
//          Tipologia_Eventi te = new Tipologia_Eventi("Rock","Concerto Live");
//          Set<Tipologia_Eventi> ste = new HashSet<Tipologia_Eventi>(1);
//          ste.add(te);
//          Locale locale = new Locale();
//          locale.setEmail("locale@yop.it");
//          Set<String> contatti = new HashSet<String>(2);
//          contatti.add("08595951");
//          contatti.add("393 3939585");
//          locale.setContatti(contatti);
//          locale.setNomeLocale("Lost Dogs Cafè");
//          locale.setIndirizzo("Viale Matrino 1, Città Sant'Angelo PE");
//          Gruppo fes = new Gruppo(); 
//          fes.setNomeGruppo("Furious & Escort");
//          Foto wallpaper = new Foto(1,"resources/img/events/10/wall.jpg");
//          Evento ev2 = new Evento(10,locale,fes,ste,"2014/11/5","22:00:00","04:00","Rock&Roll in Compagnia di Furious&Escort",locale.getIndirizzo(),0,wallpaper.getUrl(),"Evento Bellissimo fu"); 
//          
//          
//          model.addAttribute("evento", ev2);
//          model.addAttribute("wall", wallpaper);
//        return "event.single";
//    }}
//       
//    
}